added beforeTransactionCommit callback