code: def add_name(self, name, lang=None):
          
          try:
              assert (lang, name) not in self.get_names()
          except Exception as e:
              # TODO: raise a custom exception
              logger.warning("Duplicate name detected while adding \"%s (lang=%s)\""%(name, lang))
              return False
          newlabel = Literal(name, lang=lang) if lang is not None else \
              Literal(name)
          name = [
              id
              for id in self.ecrm_P1_is_identified_by
              if id.uri == surf.ns.EFRBROO['F12_Name']
          ][0]
          try:
              name.rdfs_label.append(newlabel)
              name.update()
              return True
          except Exception as e:
              raise e
docs: Adds a new name variant to an author.
  
          :param name: the name to be added
          :param lang: the language of the name variant
          :return: `True` if the name is added, `False` otherwise (the name is a duplicate)