async def METHOD_NAME(self):
    print("Start to copy table from Storage blob to Tables table.")
    print("Table name: " + self.copy_to_blob_table_name)
    await self._setup_blob()
    try:
        # Download entities from blob to memory
        # Note: when entities size is too big, may need to do copy by chunk
        blob_list = self.container_client.list_blobs()
        # Upload entities to a table
        table_service_client = TableServiceClient.from_connection_string(
            conn_str=self.table_connection_string, table_name=self.copy_to_table_table_name
        )
        self.table_client = table_service_client.get_table_client(self.copy_to_table_table_name)
        await self.table_client.create_table()
        async for blob in blob_list:
            blob_client = self.container_client.get_blob_client(blob)
            blob_stream_downloader = await blob_client.download_blob()
            entity = json.loads(await blob_stream_downloader.readall())
            # Convert values back to their original types
            entity["last_updated"] = datetime.fromisoformat(entity["last_updated"])
            entity["product_id"] = UUID(entity["product_id"])
            entity["barcode"] = entity["barcode"].encode("utf-8")
            await self.table_client.upsert_entity(entity)
        print("Done!")
    finally:
        await self._tear_down()