code: def __setitem__(self, key, value):
      if key in self:
          logger = logging.getLogger(__name__)
          logger.warning(
              f"Overwriting mesh catalog entry '{key}': old value {self[key]}"
              f", new value {value}"
          )
          mesh_id = self.mesh_ids[key]
      else:
          self.max_mesh_id += 1
          mesh_id = self.max_mesh_id
      super().__setitem__(key, value)
      self.mesh_ids[key] = mesh_id
      self.mesh_names[mesh_id] = key
  
file_path: detectron2/projects/DensePose/densepose/data/meshes/catalog.py
imports: import logging
  from collections import UserDict
  from dataclasses import dataclass
  from typing import Iterable, Optional
  from ..utils import maybe_prepend_base_path
label_desc: Use image node_id 2 for calling the _MeshCatalog obj's underlying member method code with example usage: obj.__setitem__(key, value) without return types