def METHOD_NAME(
    self,
    tags: t.List[str],
    ignore_errors: bool = False,
    manifest: t.Optional[t.Dict] = None,
    force: bool = False,
) -> None:
    _manifest = manifest or self._get_manifest()
    _version = self.uri.version
    # TODO: support to force add tag for the used by the other version, current skip the used validation for the Standalone instance.
    if not _version and not ignore_errors:
        raise MissingFieldError(f"uri version, {self.uri}")
    for _t in tags:
        _t = _t.strip()
        if not _t:
            continue
        _ok, _reason = validate_obj_name(_t)
        if not _ok:
            if ignore_errors:
                continue
            else:
                raise FormatError(f"{_t}, reason:{_reason}")
        _pre_version = _manifest["tags"].get(_t, "")
        if _pre_version and _pre_version != _version:
            _manifest["versions"][_pre_version].pop(_t, None)
            if not _manifest["versions"][_pre_version]:
                _manifest["versions"].pop(_pre_version, None)
        _manifest["tags"][_t] = _version
        if _version in _manifest["versions"]:
            _manifest["versions"][_version][_t] = True
        else:
            _manifest["versions"][_version] = {_t: True}
    self._save_manifest(_manifest)