code: def call(self, step):
      if len(step.table.parts) > 1:
          integration_name = step.table.parts[0]
          table_name_parts = step.table.parts[1:]
      else:
          integration_name = self.context["database"]
          table_name_parts = step.table.parts
  
      dn = self.session.datahub.get(integration_name)
  
      # make command
      query = Delete(
          table=Identifier(parts=table_name_parts),
          where=copy.deepcopy(step.where),
      )
  
      # fill params
      def fill_params(node, **kwargs):
          if isinstance(node, Parameter):
              rs = self.steps_data[node.value.step_num]
              items = [Constant(i[0]) for i in rs.get_records_raw()]
              return Tuple(items)
  
      query_traversal(query.where, fill_params)
  
      dn.query(query=query, session=self.session)
  
      return ResultSet()
  
file_path: mindsdb/mindsdb/api/executor/sql_query/steps/delete_step.py
imports: import copy
  from mindsdb_sql.parser.ast import Identifier, Constant, Delete, Parameter, Tuple
  from mindsdb_sql.planner.steps import DeleteStep
  from mindsdb_sql.planner.utils import query_traversal
  from mindsdb.api.executor.sql_query.result_set import ResultSet
  from .base import BaseStepCall
label_desc: Use image node_id 1 for calling the DeleteStepCall obj's underlying member method code with example usage: obj.call(step) and returns: ResultSet, Tuple