code: def write_tensor(
      self,
      project_id,
      instance_id,
      table_id,
      tensor: tf.Tensor,
      rows: List[str],
      columns: List[str],
  ):
      assert len(tensor.shape) == 2
      assert len(rows) == tensor.shape[0]
      assert len(columns) == tensor.shape[1]
      cli_path = _get_cbt_cli_path()
      for i, row in enumerate(tensor):
          for j, value in enumerate(row):
              cmd = [
                  cli_path,
                  "-project",
                  project_id,
                  "-instance",
                  instance_id,
                  "set",
                  table_id,
                  rows[i],
                  f"{columns[j]}={value.numpy().decode()}",
              ]
              subprocess.check_output(cmd)
  
file_path: io/tests/test_bigtable/bigtable_emulator.py
imports: import os
  import subprocess
  import re
  import tensorflow
  from threading import Thread
  from typing import List
label_desc: Use image node_id 4 for calling the BigtableEmulator obj's underlying member method code with example usage: obj.write_tensor(project_id, instance_id, table_id, tensor, rows, columns) without return types