refs #889, separate TxnContext::commit to separate child and root functions, and reduce scope of try-catch blocks in root