def METHOD_NAME(config, task_id, path):
    """Return the full path where an upstream artifact should be located.
    Artifact may not exist. If you want to be sure if does, use
    ``get_and_check_single_upstream_artifact_full_path()`` instead.
    This function is mainly used to move artifacts to the expected location.
    Args:
        config (dict): the running config
        task_id (str): the task id of the task that published the artifact
        path (str): the relative path of the artifact
    Returns:
        str: absolute path to the artifact should be.
    """
    parent_dir = os.path.abspath(os.path.join(config["work_dir"], "cot", task_id))
    full_path = os.path.join(parent_dir, path)
    assert_is_parent(full_path, parent_dir)
    return full_path