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

def set(self, paths: Union[str, Iterable[str]], metadata: Union[IrodsMetadata, List[IrodsMetadata]]):
        """
        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
        """