code: def add_block(self, block: Any) -> None:
      if not isinstance(block, self._block_type):
          raise TypeError(
              f"Got a block of type {type(block)}, expected {self._block_type}."
              "If you are mapping a function, ensure it returns an "
              "object with the expected type. Block:\n"
              f"{block}"
          )
      accessor = BlockAccessor.for_block(block)
      self._tables.append(block)
      self._num_rows += accessor.num_rows()
  
imports: import collections
  from typing import TYPE_CHECKING, Any, Dict, Iterator, List, Mapping, TypeVar, Union
  import numpy
  from ray.air.constants import TENSOR_COLUMN_NAME
  from ray.data._internal.block_builder import BlockBuilder
  from ray.data._internal.numpy_support import convert_udf_returns_to_numpy, is_array_like
  from ray.data._internal.size_estimator import SizeEstimator
  from ray.data.block import Block, BlockAccessor
  from ray.data.row import TableRow
label_desc: Use image node_id 3 for calling the TableBlockBuilder obj's underlying member method code with example usage: obj.add_block(block) without return types