def exists(self, path=None, client_kwargs=None, assume_exists=None):
        """
        Return True if path refers to an existing path.

        Args:
            path (str): Path or URL.
            client_kwargs (dict): Client arguments.
            assume_exists (bool or None): This value define the value to return
                in the case there is no enough permission to determinate the
                existing status of the file. If set to None, the permission
                exception is reraised (Default behavior). if set to True or
                False, return this value.

        Returns:
            bool: True if exists.
        """
        try:
            self.head(path, client_kwargs)
        except ObjectNotFoundError:
            return False
        except ObjectPermissionError:
            if assume_exists is None:
                raise
            return assume_exists
        return True