docs: def abort(self, frame):
          """
          Handles ABORT command: Rolls back specified transaction.
          """
          if not frame.transaction:
              raise ProtocolError("Missing transaction for ABORT command.")
  
          if not frame.transaction in self.engine.transactions:
              raise ProtocolError("Invalid transaction: %s" % frame.transaction)
  
          self.engine.queue_manager.resend_transaction_frames(
              self.engine.connection, frame.transaction)
          del self.engine.transactions[frame.transaction]