Into Transaction page, you may read about all typical transaction usage.
But, sometime, even this is not enought.
To cover the most sophisticated cases, you may need to use propagations.
There are few of them:
Every no-arg execute() uses SUPPORTS propagation. That mean, if you already opened a transaction, it will be used. Otwerwise, a new transaction will be opened.
However, there is also an execute(Propagation propagation) method where you are able to specify the propagation.
Update will be executed irrespective of main transaction ending.