Hello Willem ;-)
It's asynchronous, so each method has its own transactional context and
its TransactionAttribute, with a TAType defaulting to REQUIRED, which
will create a new transaction in this case.
Both methods can't have the same transaction: the synchronous one would
need to commit the transaction when leaving the transaction context,
but that could happen at very different times.
You could always return a Future from your asynchronous method and wait
for it at some point. Wouldn't that solve all problems that you are
thinking of?
Best regards,
Yannick Majoros