code: def create(self, datmo_entity):
      # translate datmo_entity to a standard dictionary (document) to be stored
      if hasattr(datmo_entity, "to_dictionary"):
          dict_obj = datmo_entity.to_dictionary()
      else:
          dict_obj = self.entity_class(datmo_entity).to_dictionary()
      # create a unique hash from misc_functions.py
      # TODO: find efficient way to get previous hash for entity
      # latest_entity = self.query({"id": latest})
      # dict_obj['id'] = create_unique_hash(base_hash=latest_entity['id'])
      dict_obj["id"] = (
          dict_obj["id"]
          if "id" in dict_obj.keys() and dict_obj["id"]
          else create_unique_hash()
      )
      response = self.driver.set(self.collection, dict_obj)
      entity_instance = self.entity_class(response)
      return entity_instance
  
imports: import os
  from kids.cache import cache
  from datetime import datetime
  from datmo.core.util.i18n import get
  from datmo.core.entity.model import Model
  from datmo.core.entity.code import Code
  from datmo.core.entity.environment import Environment
  from datmo.core.entity.file_collection import FileCollection
  from datmo.core.entity.task import Task
  from datmo.core.entity.snapshot import Snapshot
  from datmo.core.entity.user import User
  from datmo.core.util.exceptions import InputError, EntityNotFound, MoreThanOneEntityFound, DALNotInitialized
  from datmo.core.util.misc_functions import create_unique_hash
  from datmo.core.storage.driver.blitzdb_dal_driver import BlitzDBDALDriver
label_desc: Use image node_id 4 for calling the EntityMethodsCRUD obj's underlying member method code with example usage: obj.create(datmo_entity) and returns: entity_instance