Prevent further queries after transaction error

Currently any error coming back from the mysql server causes the transaction to be marked as failed (`_transOk = false`), but the rollback doesn't happen until `CompleteTrans` is called. The transaction keeps accepting queries after it's been marked as failed. 

This is a problem because if the exception thrown by the failed query is ignored, the application might proceed as everything is fine, accept further queries and then rollback them all at the end. This can be side effects if code inside the transaction is interacting with external services. 

This PR changes the behavior so that the transaction will stop accepting new queries, and will throw an exception in case.