Adds a node with the given name to the graph without checking whether it already exists or not.

        Arguments:
            node_name (str): The name of the node to add.
            external_id (Optional[str]): The external ID of the node.
            are_neighbors_cached (bool): Whether the neighbors of the node have already been cached.
            add_to_cache (bool): Whether the node should also be created in the local cache.

def _internal_add_node(self,
                           node_name: str,
                           external_id: Optional[str] = None,
                           are_neighbors_cached: bool = False,
                           add_to_cache: bool = False) -> None:
        """
        Adds a node with the given name to the graph without checking whether it already exists or not.

        Arguments:
            node_name (str): The name of the node to add.
            external_id (Optional[str]): The external ID of the node.
            are_neighbors_cached (bool): Whether the neighbors of the node have already been cached.
            add_to_cache (bool): Whether the node should also be created in the local cache.
        """
        index: int = len(self)
        node: Node = self._create_node(index, node_name, external_id)
        node.are_neighbors_cached = are_neighbors_cached
        self._nodes[index] = node
        self._node_name_map[node_name] = node

        if add_to_cache:
            db: GraphDatabaseInterface = self._graph.database
            db_node: DBNode = db.Node.find_by_name(node.name)
            if db_node is None:
                db_node = db.Node(node.name, node.external_id)
                db_node.are_neighbors_cached = False
                db.session.add(db_node)
                db.session.commit()