    # File lib/active_record/transactions.rb, line 84
          def transaction(*objects, &block)
            previous_handler = trap('TERM') { raise TransactionError, "Transaction aborted" }
            increment_open_transactions

            begin
              unless objects.empty?
                ActiveSupport::Deprecation.warn "Object transactions are deprecated and will be removed from Rails 2.0.  See http://www.rubyonrails.org/deprecation for details.", caller
                objects.each { |o| o.extend(Transaction::Simple) }
                objects.each { |o| o.start_transaction }
              end

              result = connection.transaction(Thread.current['start_db_transaction'], &block)

              objects.each { |o| o.commit_transaction }
              return result
            rescue Exception => object_transaction_rollback
              objects.each { |o| o.abort_transaction }
              raise
            ensure
              decrement_open_transactions
              trap('TERM', previous_handler)
            end
          end