docs: def _handle_witnesses(self, root):
          """Returns `root` with a witness list added to the TEI header and @wit
          values changed to references."""
          witnesses, bearers = self.get_witnesses(root)
          if not witnesses:
              return root
          source_desc = root.xpath(
              '/tei:teiCorpus/tei:teiHeader/tei:fileDesc/tei:sourceDesc',
              namespaces=constants.NAMESPACES)[0]
          wit_list = etree.SubElement(source_desc, TEI + 'listWit')
          for index, siglum in enumerate(witnesses):
              wit = etree.SubElement(wit_list, TEI + 'witness')
              xml_id = 'wit{}'.format(index+1)
              wit.set(constants.XML + 'id', xml_id)
              wit.text = siglum
              full_siglum = '【{}】'.format(siglum)
              self._update_refs(root, bearers, 'wit', full_siglum, xml_id)
          return root