code: def insert(self, query: ast.Insert):
      column_names = [col.name for col in query.columns]
      for insert_row in query.values:
          insert_params = dict(zip(column_names, insert_row))
  
          if "username" in insert_params:
              # resolve username
              resp = self.handler.call_api(
                  "users_info", insert_params["username"]
              )
              if "user" in resp:
                  insert_params["room_id"] = resp["user"]["_id"]
                  del insert_params["username"]
              else:
                  raise ValueError(
                      f'User not found: {insert_params["username"]}'
                  )
  
          self.handler.call_api("chat_post_message", **insert_params)
  
imports: from typing import List
  import pandas
  from mindsdb.integrations.libs.api_handler import APITable
  from mindsdb.integrations.utilities.sql_utils import conditions_to_filter, project_dataframe, sort_dataframe
  from mindsdb_sql.parser import ast
label_desc: Use image node_id 2 for calling the DirectMessagesTable obj's underlying member method code with example usage: obj.insert(query) without return types