code: def add_block(self, block: Block):
      accessor = BlockAccessor.for_block(block)
      if accessor.num_rows() == 0:
          # Don't infer types of empty lists. Store the block and use it if no
          # other data is added. https://github.com/ray-project/ray/issues/20290
          self._empty_block = block
          return
      if self._builder is None:
          self._builder = accessor.builder()
      self._builder.add_block(accessor.to_block())
  
file_path: ray/python/ray/data/_internal/delegating_block_builder.py
imports: import collections
  from typing import Any, Mapping
  from ray.data._internal.arrow_block import ArrowBlockBuilder
  from ray.data._internal.block_builder import BlockBuilder
  from ray.data._internal.pandas_block import PandasBlockBuilder
  from ray.data.block import Block, BlockAccessor, DataBatch
label_desc: Use image node_id 4 for calling the DelegatingBlockBuilder obj's underlying member method code with example usage: obj.add_block(block) without return types