code: def insert(self, query: ast.Insert):
      # https://docs.tweepy.org/en/stable/client.html#tweepy.Client.create_tweet
      columns = [col.name for col in query.columns]
  
      ret = []
  
      insert_params = ["to_number", "from_number", "body", "media_url"]
      for row in query.values:
          params = dict(zip(columns, row))
  
          # split long text over 1500 symbols
          max_text_len = 1500
          text = params["body"]
          words = re.split("( )", text)
          messages = []
  
          text2 = ""
          pattern = r"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+"
          for word in words:
              # replace the links in word to string with the length as twitter short url (23)
              word2 = re.sub(pattern, "-" * 23, word)
              if (
                  len(text2) + len(word2) > max_text_len - 3 - 7
              ):  # 3 is for ..., 7 is for (10/11)
                  messages.append(text2.strip())
  
                  text2 = ""
              text2 += word
  
          # the last message
          if text2.strip() != "":
              messages.append(text2.strip())
  
          len_messages = len(messages)
  
          for i, text in enumerate(messages):
              if i < len_messages - 1:
                  text += "..."
              else:
                  text += " "
  
              if i >= 1:
                  text += f"({i + 1}/{len_messages})"
                  # only send image on first url
                  if "media_url" in params:
                      del params["media_url"]
  
              params["body"] = text
              params_to_send = {
                  key: params[key]
                  for key in insert_params
                  if (key in params)
              }
              ret_row = self.handler.send_sms(
                  params_to_send, ret_as_dict=True
              )
              ret_row["body"] = text
              ret.append(ret_row)
  
      return pd.DataFrame(ret)
  
imports: import os
  import re
  from twilio.rest import Client
  import pandas
  from mindsdb.integrations.libs.api_handler import APIHandler, APITable
  from mindsdb.integrations.libs.response import HandlerStatusResponse, HandlerResponse, RESPONSE_TYPE
  from mindsdb.utilities.config import Config
  from mindsdb.utilities import log
  from mindsdb.integrations.utilities.date_utils import parse_local_date
  from mindsdb.integrations.utilities.sql_utils import extract_comparison_conditions, project_dataframe, filter_dataframe
  from mindsdb_sql.parser import ast
label_desc: Use image node_id 3 for calling the MessagesTable obj's underlying member method code with example usage: obj.insert(query) and returns: pd