async def METHOD_NAME(self, table_name: str, data: Dict[str, Any]):
    col_exp = ", ".join([f"`{col}`" for col in data])
    query = (
        f"INSERT INTO {table_name} "
        + f"( {col_exp} )"
        + f" VALUES( {', '.join([self.BIND_DECLARATION] * len(data))} ) "
        + " ON DUPLICATE KEY UPDATE "
        + " ,".join([f"`{col}` = {self.BIND_DECLARATION}" for col in data])
    )
    vals = list(data.values()) * 2
    await self.conn.execute(query, vals)