Refactor code to use primitive_for and remove unnecessary validation
Remove duplication in method
Rename local variable to something better
Update the adapter to proxy the transaction commands

* This allows the MySQL adapter to conditionally handle
  savepoint related errors, and conditionally raise all errors
  except unknown savepoint related errors.