Check for transaction before committing or rolling back

In `.renameColumn` (and probably elsewhere), some commands are run in the promise chain before `.ensureTransaction`; in certain cases, these may fail, in which case the `.catch` handler attempts to roll back the transaction when it doesn't exist. This causes a useless error to be thrown about a transaction as opposed to the error that actually caused the problem (for example, column name doesn't exist in table)
You'll need to add a `throw e` here for cases that the transaction doesn't exist - we'd want the error thrown.