code: func (pool *TxPool) enqueueTx(hash common.Hash, tx *types.Transaction) (bool, error) {
  	// Try to insert the transaction into the future queue
  	from, _ := types.Sender(pool.signer, tx) // already validated
  	if pool.queue[from] == nil {
  		pool.queue[from] = newTxList(false)
  	}
  	inserted, old := pool.queue[from].Add(tx, pool.config.PriceBump)
  	if !inserted {
  		// An older transaction was better, discard this
  		queuedDiscardCounter.Inc(1)
  		return false, ErrReplaceUnderpriced
  	}
  	// Discard any previous transaction and mark this
  	if old != nil {
  		pool.all.Remove(old.Hash())
  		pool.priced.Removed()
  		queuedReplaceCounter.Inc(1)
  	}
  	if pool.all.Get(hash) == nil {
  		pool.all.Add(tx)
  		pool.priced.Put(tx)
  	}
  	return old != nil, nil
  }
docs: // enqueueTx inserts a new transaction into the non-executable transaction queue.
  //
  // Note, this method assumes the pool lock is held!