def METHOD_NAME(self, source_path, target_path,
                server, project_name, file, representation, site,
                overwrite=False, direction="Upload"):
    """
        Copies file from 'source_path' to 'target_path'
    """
    if not os.path.isfile(source_path):
        raise FileNotFoundError("Source file {} doesn't exist."
                                .format(source_path))
    if overwrite:
        thread = threading.Thread(target=self._copy,
                                  args=(source_path, target_path))
        thread.start()
        self._mark_progress(project_name, file, representation, server,
                            site, source_path, target_path, direction)
    else:
        if os.path.exists(target_path):
            raise ValueError("File {} exists, set overwrite".
                             format(target_path))
    return os.path.basename(target_path)