code: func (pool *TxPool) Add(ctx context.Context, tx *types.Transaction) error {
  	pool.mu.Lock()
  	defer pool.mu.Unlock()
  
  	data, err := rlp.EncodeToBytes(tx)
  	if err != nil {
  		return err
  	}
  
  	if err := pool.add(ctx, tx); err != nil {
  		return err
  	}
  	//fmt.Println("Send", tx.Hash())
  	pool.relay.Send(types.Transactions{tx})
  
  	pool.chainDb.Put(tx.Hash().Bytes(), data)
  	return nil
  }
docs: // Add adds a transaction to the pool if valid and passes it to the tx relay
  // backend