code: def set(self, paths: Union[str, Iterable[str]], metadata: Union[IrodsMetadata, List[IrodsMetadata]]):
          
docs: Sets the given metadata on the iRODS entities at the given path or paths. Similar to `add` excpet pre-existing
          metadata with matching keys will be overwritten.
  
          If a single metadata collection is given, that metadata is set for all paths. If a list of metadata are given,
          each collection is set for the path with the corresponding index.
  
          A `ValueError` will be raised will be raised if the path does not correspond to a valid entity.
          :param path: the path of the entity to set the metadata for
          :param metadata: the metadata to set