code: def upsert(
      self,
      data,
      partition_name=None,
      timeout=None,
      check_task=None,
      check_items=None,
      **kwargs,
  ):
      timeout = TIMEOUT if timeout is None else timeout
      func_name = sys._getframe().f_code.co_name
      res, check = api_request(
          [self.collection.upsert, data, partition_name, timeout],
          **kwargs,
      )
      check_result = ResponseChecker(
          res, func_name, check_task, check_items, check, **kwargs
      ).run()
      return res, check_result
  
imports: import sys
  import time
  import timeout_decorator
  from numpy import NaN
  from pymilvus import Collection
  from check.func_check import ResponseChecker
  from utils.api_request import api_request
  from utils.wrapper import trace
  from utils.util_log import test_log
  from pymilvus.orm.types import CONSISTENCY_STRONG
  from common.common_func import param_info
label_desc: Use image node_id 33 for calling the ApiCollectionWrapper obj's underlying member method code with example usage: obj.upsert(data, partition_name, timeout, check_task, check_items) and returns: res,  check_result