Handling nested transactions using TransactionStack
includes test for this as well