<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_new_refs(cls, manifest, current_project, node, macros):
 """Given a new node that is not in the manifest, copy the manifest and insert the new node into it as if it were part of regular ref processing """

        manifest = manifest.deepcopy(config=current_project)
        # it's ok for macros to silently override a local project macro name
        manifest.macros.update(macros)

        if node.unique_id in manifest.nodes:
            # this should be _impossible_ due to the fact that rpc calls get
            # a unique ID that starts with 'rpc'!
            raise dbt.exceptions.raise_duplicate_resource_name(
                manifest.nodes[node.unique_id], node
            )
        manifest.nodes[node.unique_id] = node
        cls.process_sources_for_node(manifest, current_project, node)
        cls.process_refs_for_node(manifest, current_project, node)
        cls.process_docs_for_node(manifest, current_project, node)
        return manifest