code: def test_update(self, postgres_handler_mock):
      df = pd.DataFrame(
          {
              "id": ["id1", "id2"],
              "content": ["this is a test", "this is a test"],
              "metadata": [{"ext_id": "1"}, {"ext_id": "2"}],
              "embeddings": [[1.0, 2.0, 3.0], [1.0, 2.0, 3.0]],
          }
      )
      self.set_handler(
          postgres_handler_mock, "pg", tables={"test_table": df}
      )
  
      # create a table
      sql = """
                      CREATE TABLE chroma_test.test_table (
                          SELECT * FROM pg.df
                      )
                  """
      self.run_sql(sql)
  
      # updating the collection with only embeddings and not content is not allowed
      sql = """
              UPDATE chroma_test.test_table
              SET embeddings = '[3.0, 2.0, 1.0]',
               id = 'id1'
          """
  
      with pytest.raises(Exception):
          self.run_sql(sql)
  
      # updating the collection with only content and not embeddings is not allowed
      sql = """
              UPDATE chroma_test.test_table
              SET content = 'blah blah',
               id = 'id1'
          """
  
      with pytest.raises(Exception):
          self.run_sql(sql)
  
      # update multiple columns
      sql = """
              UPDATE chroma_test.test_table
              SET id = 'id1',
                  embeddings = '[1.0, 2.0, 3.0]',
                  content = 'this is a test'
          """
      self.run_sql(sql)
      # check if the data is updated
      sql = """
              SELECT * FROM chroma_test.test_table
              WHERE id = 'id1'
          """
      ret = self.run_sql(sql)
      assert ret.shape[0] == 1
      assert ret.embeddings[0] == [1.0, 2.0, 3.0]
      assert ret.content[0] == "this is a test"
  
      # update a table with a where clause is not allowed
      sql = """
              UPDATE chroma_test.test_table
              SET `metadata.test` = 'test2'
              WHERE search_vector = [1.0, 2.0, 3.0]
          """
      with pytest.raises(Exception):
          self.run_sql(sql)
  
      # update a table with all columns
      sql = """
                  UPDATE chroma_test.test_table
                  SET id = 'id1',
                      embeddings = '[1.0, 2.0, 3.0]',
                      content = 'this is a test',
                      `metadata.ext_id` = '1'
                  """
      self.run_sql(sql)
      # check if the data is updated
      sql = """
              SELECT * FROM chroma_test.test_table
              WHERE id = 'id1'
          """
      ret = self.run_sql(sql)
      assert ret.shape[0] == 1
      assert ret.embeddings[0] == [1.0, 2.0, 3.0]
      assert ret.content[0] == "this is a test"
      assert ret.metadata[0] == {"ext_id": "1"}
  
      # update a table without providing a id is not allowed
      sql = """
              UPDATE chroma_test.test_table
              SET metadata.test = 'test3'
  
          """
      with pytest.raises(Exception):
          self.run_sql(sql)
  
file_path: mindsdb/mindsdb/integrations/handlers/chromadb_handler/tests/test_chromadb_handler.py
imports: import importlib
  import shutil
  import tempfile
  from unittest.mock import patch
  import pandas
  import pytest
  from mindsdb_sql import parse_sql
  from tests.unit.executor_test_base import BaseExecutorTest
label_desc: Use image node_id 8 for calling the TestChromaDBHandler obj's underlying member method code with example usage: obj.test_update(postgres_handler_mock) without return types