class_docstr: Similar to :class:`~sqlalchemy.types.TIMESTAMP` with ``timezone=True`` option, with some differences.
  
  - Never silently take naive :class:`~datetime.datetime`, instead it
    always raise :exc:`ValueError` unless time zone aware value.
  - :class:`~datetime.datetime` value's :attr:`~datetime.datetime.tzinfo`
    is always converted to UTC.
  - Unlike SQLAlchemy's built-in :class:`~sqlalchemy.types.TIMESTAMP`,
    it never return naive :class:`~datetime.datetime`, but time zone
    aware value, even with SQLite or MySQL.
  - Always returns TIMESTAMP in UTC.
class_docstr_tok: ["Similar","to",":","class",":","`","~sqlalchemy.types.TIMESTAMP","`","with","``","timezone=True","``","option",",","with","some","differences",".","-","Never","silently","take","naive",":","class",":","`","~datetime.datetime","`",",","instead","it","always","raise",":","exc",":","`","ValueError","`","unless","time","zone","aware","value",".","-",":","class",":","`","~datetime.datetime","`","value","'s",":","attr",":","`","~datetime.datetime.tzinfo","`","is","always","converted","to","UTC",".","-","Unlike","SQLAlchemy","'s","built-in",":","class",":","`","~sqlalchemy.types.TIMESTAMP","`",",","it","never","return","naive",":","class",":","`","~datetime.datetime","`",",","but","time","zone","aware","value",",","even","with","SQLite","or","MySQL",".","-","Always","returns","TIMESTAMP","in","UTC","."]
code: def process_bind_param(self, value, dialect):
      if not isinstance(value, datetime.datetime):
          if value is None:
              return None
          raise TypeError(f"expected datetime.datetime, not {value!r}")
      elif value.tzinfo is None:
          raise ValueError("naive datetime is disallowed")
      elif dialect.name == "mysql":
          # For mysql we should store timestamps as naive values
          # In MySQL 5.7 inserting timezone value fails with 'invalid-date'
          # See https://issues.apache.org/jira/browse/AIRFLOW-7001
          return make_naive(value, timezone=utc)
      return value.astimezone(utc)
  
imports: from __future__ import annotations
  import contextlib
  import copy
  import datetime
  import json
  import logging
  from typing import TYPE_CHECKING, Any, Generator, Iterable, overload
  from dateutil import relativedelta
  from sqlalchemy import TIMESTAMP, PickleType, event, nullsfirst, tuple_
  from sqlalchemy.dialects import mysql
  from sqlalchemy.types import JSON, Text, TypeDecorator
  from airflow.configuration import conf
  from airflow.serialization.enums import Encoding
  from airflow.utils.timezone import make_naive, utc
label_desc: Use image node_id 1 for calling the UtcDateTime obj's underlying member method code with example usage: obj.process_bind_param(value, dialect) and returns: value, None, make_naive