class_docstr: Parses a INSERT query into its component parts.
  
  Parameters
  ----------
  query : ast.Insert
      Given SQL INSERT query.
  supported_columns : List[Text], Optional
      List of columns supported by the table for inserting.
  mandatory_columns : List[Text], Optional
      List of columns that must be present in the query for inserting.
  all_mandatory : Optional[Any], Optional (default=True)
      Whether all mandatory columns must be present in the query. If False, only one of the mandatory columns must be present.
docstr: Parses a SQL INSERT statement into its components: columns, values and returns a list of dictionaries with the values to insert.
docstr_tok: ["Parses","a","SQL","INSERT","statement","into","its","components",":","columns",",","values","and","returns","a","list","of","dictionaries","with","the","values","to","insert","."]
code: def parse_query(self) -> List[Dict[Text, Any]]:
      """
      Parses a SQL INSERT statement into its components: columns, values and returns a list of dictionaries with the values to insert.
      """
      columns = self.parse_columns()
      values = self.parse_values()
  
      values_to_insert = []
      for value in values:
          if len(columns) != len(value):
              raise ColumnCountMismatchException(
                  "Number of columns does not match the number of values"
              )
          else:
              values_to_insert.append(dict(zip(columns, value)))
  
      return values_to_insert
  
imports: from mindsdb_sql.parser import ast
  from typing import Text, List, Dict, Any, Optional
  from .exceptions import UnsupportedColumnException, MandatoryColumnException, ColumnCountMismatchException
label_desc: Use image node_id 2 for calling the INSERTQueryParser obj's underlying member method code with example usage: obj.parse_query() and returns: values_to_insert