code: func (c *Connection) Abort(h Headers) error {
  	c.log(ABORT, "start", h)
  	if !c.connected {
  		return ECONBAD
  	}
  	// We must have a transaction header here
  	if _, ok := h.Contains(HK_TRANSACTION); !ok {
  		return EREQTIDABT
  	}
  	// And it must not be empty
  	if h.Value(HK_TRANSACTION) == "" {
  		return ETIDABTEMT
  	}
  	e := c.transmitCommon(ABORT, h) // transmitCommon Clones() the headers
  	c.log(ABORT, "end", h)
  	return e
  }
docs: /*
  	Abort a STOMP transaction.
  
  	Headers MUST contain a "transaction" header key
  	with a value that is not an empty string.
  
  	Example:
  		h := stompngo.Headers{stompngo.HK_TRANSACTION, "transaction-id1"}
  		e := c.Abort(h)
  		if e != nil {
  			// Do something sane ...
  		}
  */