diff --git a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py index 0e372fa4..45993354 100644 --- a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py +++ b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py @@ -800,13 +800,12 @@ def do_rollback(self, dbapi_connection): To prevent rollback exception, don't rollback committed/rolled back transactions. """ - if ( - not isinstance(dbapi_connection, spanner_dbapi.Connection) - and dbapi_connection.connection._transaction - and ( - dbapi_connection.connection._transaction.rolled_back - or dbapi_connection.connection._transaction.committed - ) + if not isinstance(dbapi_connection, spanner_dbapi.Connection): + dbapi_connection = dbapi_connection.connection + + if dbapi_connection._transaction and ( + dbapi_connection._transaction.rolled_back + or dbapi_connection._transaction.committed ): pass else: