code: def update_routes(self, new_routes: List[NodeRoute]) -> None:
      add_routes = []
      new_routes: List[NodeRoute] = self.update_route_priorities(
          new_routes
      )
      for new_route in new_routes:
          existed, index = self.existed_route(new_route)
          if not existed:
              add_routes.append(new_route)
          else:
              # if the route already exists, we do not append it to self.new_route,
              # but update its priority
              self.node_routes[index].priority = new_route.priority
  
      self.node_routes += add_routes
  
imports: from typing import List
  from typing import Optional
  from typing import Tuple
  from typing_extensions import Self
  from ...abstract_node import NodeType
  from ...client.client import SyftClient
  from ...node.credentials import SyftSigningKey
  from ...node.credentials import SyftVerifyKey
  from ...serde.serializable import serializable
  from ...service.response import SyftError
  from ...types.syft_object import SYFT_OBJECT_VERSION_1
  from ...types.syft_object import SyftObject
  from ...types.uid import UID
  from ..context import NodeServiceContext
  from ..metadata.node_metadata import NodeMetadataV3
  from .routes import HTTPNodeRoute
  from .routes import NodeRoute
  from .routes import NodeRouteType
  from .routes import connection_to_route
  from .routes import route_to_connection
label_desc: Use image node_id 1 for calling the NodePeer obj's underlying member method code with example usage: obj.update_routes(new_routes) without return types