code: def create(self, name: str):
      name = name.lower()
      existing_record = db.Project.query.filter(
          (sa.func.lower(db.Project.name) == name)
          & (db.Project.company_id == ctx.company_id)
          & (db.Project.deleted_at == sa.null())
      ).first()
      if existing_record is not None:
          raise EntityExistsError("Project already exists", name)
  
      record = db.Project(name=name, company_id=ctx.company_id)
  
      self.record = record
      self.name = name
      self.company_id = ctx.company_id
  
      db.session.add(record)
      db.session.commit()
  
      self.id = record.id
  
imports: import datetime
  from typing import List
  from collections import OrderedDict
  import sqlalchemy
  import numpy
  from mindsdb_sql.parser.ast.base import ASTNode
  from mindsdb_sql import parse_sql
  from mindsdb.interfaces.storage import db
  from mindsdb.utilities.config import Config
  from mindsdb.interfaces.model.model_controller import ModelController
  from mindsdb.interfaces.database.views import ViewController
  from mindsdb.utilities.context import context
  from mindsdb.utilities.exception import EntityExistsError
  import mindsdb.utilities.profiler
label_desc: Use image node_id 2 for calling the Project obj's underlying member method code with example usage: obj.create(name) without return types