Hi,
I'm not sure about that: the specs say that a stateful session bean may commit a started transaction before the business method returns.
Instead, for stateless session bean/mdb I suppose that it means that if I create a transaction in a business method, I have to commit before return.
The same is for timeout callback methods.
Finally, in 13.6.1, the specs say:
If a stateless session bean instance starts a transaction in a business method or interceptor method, it must commit the transaction before the business method (or all its interceptor methods) returns.
I hope this helps