    # File lib/active_record/connection_adapters/abstract/database_statements.rb, line 51
          def transaction(start_db_transaction = true)
            transaction_open = false
            begin
              if block_given?
                if start_db_transaction
                  begin_db_transaction
                  transaction_open = true
                end
                yield
              end
            rescue Exception => database_transaction_rollback
              if transaction_open
                transaction_open = false
                rollback_db_transaction
              end
              raise
            end
          ensure
            commit_db_transaction if transaction_open
          end