Mmmmh,
I'm not sure at the moment what the spec recommend....
But I suppose it is a fuzzy transaction handling and each container might handle it different.
I would design it in a way that the credidcard part is a separate transaction (new Bean @Transaction.RequiresNew).
In this case it is clean that and when the Tx is commited. In your case the CreditCard Tx is commited at the end of your use case, so if you have an Exception after the CC is charged this Tx is also rolled back.
The only difference is the small timeslice where your code is finised and both Tx should commited.
So I would think that the behavior of AS7 is better and avoid Tx trouble and fuzzy behavior, but it might be a matter of opinion