docstr: Update model
docstr_tok: ["Update","model"]
code: def put(self, project_name, model_name):
      """Update model"""
  
      session = SessionController()
  
      project_datanode = session.datahub.get(project_name)
      if project_datanode is None:
          return http_error(
              HTTPStatus.NOT_FOUND,
              "Project not found",
              f"Project name {project_name} does not exist",
          )
  
      if "problem_definition" not in request.json:
          return http_error(
              HTTPStatus.BAD_REQUEST,
              "problem_definition required",
              'Missing "problem_definition" field',
          )
  
      problem_definition = request.json["problem_definition"]
  
      model_name, version = Predictor.get_name_and_version(model_name)
  
      session.model_controller.update_model(
          session,
          project_name,
          model_name,
          version=version,
          problem_definition=problem_definition,
      )
      return session.model_controller.get_model(
          model_name, version=version, project_name=project_name
      )
  
imports: from http import HTTPStatus
  import json
  from flask import request
  from flask_restx import Resource
  from sqlalchemy.exc import NoResultFound
  from mindsdb.api.http.namespaces.configs.projects import ns_conf
  from mindsdb.api.http.utils import http_error
  from mindsdb.api.executor.controllers.session_controller import SessionController
  from mindsdb.interfaces.model.functions import PredictorRecordNotFound
  from mindsdb.interfaces.storage.db import Predictor
  from mindsdb_sql import parse_sql
  from mindsdb_sql.parser.dialects.mindsdb import CreatePredictor
label_desc: Use image node_id 2 for calling the ModelResource obj's underlying member method code with example usage: obj.put(project_name, model_name) and returns: session, http_error, http_error