code: func (c *certPool) Add(certs ...*x509.Certificate) {
  	if len(certs) == 0 {
  		return
  	}
  
  	//filter certs to be added, check if they already exist or duplicate
  	certsToBeAdded := c.filterCerts(certs...)
  
  	if len(certsToBeAdded) > 0 {
  
  		c.lock.Lock()
  		defer c.lock.Unlock()
  
  		for _, newCert := range certsToBeAdded {
  			// Store cert name index
  			name := string(newCert.RawSubject)
  			c.certsByName[name] = append(c.certsByName[name], len(c.certs))
  			// Store cert
  			c.certs = append(c.certs, newCert)
  		}
  
  		atomic.CompareAndSwapInt32(&c.dirty, 0, 1)
  	}
  }
docs: //Add adds given certs to cert pool queue, those certs will be added to certpool during subsequent Get() call