code: def convert_pa_dtype(pa_dtype: pa.DataType) -> Optional[str]:
      if pa.types.is_boolean(pa_dtype):
          return "BOOL"
      if pa.types.is_integer(pa_dtype):
          return "INT"
      if pa.types.is_floating(pa_dtype):
          return "FLOAT"
      if pa.types.is_string(pa_dtype):
          return "STRING"
      if pa.types.is_temporal(pa_dtype):
          return "DATETIME"
      return None
  
imports: import datetime
  import json
  import logging
  from typing import Any, Optional
  import numpy
  import pandas
  import pyarrow
  from numpy.typing import NDArray
  from superset.db_engine_specs import BaseEngineSpec
  from superset.superset_typing import DbapiDescription, DbapiResult, ResultSetColumnType
  from superset.utils import core
  from superset.utils.core import GenericDataType
label_desc: Use image node_id 2 for calling the SupersetResultSet obj's underlying member method code with example usage: obj.convert_pa_dtype(pa_dtype) and returns: None, str, str, str, str, str