with UserTransaction support