code: def _add(self, replace, section, name, *args):
          
  
          if isinstance(name, (str, unicode)):
              name = dns.name.from_text(name, None)
          if isinstance(args[0], dns.rdataset.Rdataset):
              for rds in args:
                  if replace:
                      self.delete(name, rds.rdtype)
                  for rd in rds:
                      self._add_rr(name, rds.ttl, rd, section=section)
          else:
              args = list(args)
              ttl = int(args.pop(0))
              if isinstance(args[0], dns.rdata.Rdata):
                  if replace:
                      self.delete(name, args[0].rdtype)
                  for rd in args:
                      self._add_rr(name, ttl, rd, section=section)
              else:
                  rdtype = args.pop(0)
                  if isinstance(rdtype, str):
                      rdtype = dns.rdatatype.from_text(rdtype)
                  if replace:
                      self.delete(name, rdtype)
                  for s in args:
                      rd = dns.rdata.from_text(self.zone_rdclass, rdtype, s,
                                               self.origin)
                      self._add_rr(name, ttl, rd, section=section)
docs: Add records.  The first argument is the replace mode.  If
          false, RRs are added to an existing RRset; if true, the RRset
          is replaced with the specified contents.  The second
          argument is the section to add to.  The third argument
          is always a name.  The other arguments can be:
  
                  - rdataset...
  
                  - ttl, rdata...
  
                  - ttl, rdtype, string...