docs: 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()