code: def handler(cls, options, config):
      print("==== LookupTables; List Add Key ====")
  
      table_name = options.table
      key = options.key
  
      core = LookupTables.get_instance(config=config)
  
      print("  Table: {}".format(table_name))
      print("  Key:   {}".format(key))
  
      table = core.table(table_name)
      old_value = table.get(key)
  
      if old_value is None:
          old_value = []
  
      if not isinstance(old_value, list):
          print(
              "  ERROR: The current value is not a list: {}".format(
                  old_value
              )
          )
          return False
  
      new_value = copy.copy(old_value)
      new_value.append(options.value)
  
      if options.unique:
          new_value = list(set(new_value))
  
      if options.sort:
          new_value = sorted(new_value)
  
      print("  Value: {} --> {}".format(old_value, new_value))
  
      LookupTablesMagic.set_table_value(table, key, new_value)
  
      return True
  
imports: import copy
  import json
  from streamalert.shared.logger import get_logger
  from streamalert.shared.lookup_tables.core import LookupTables
  from streamalert.shared.lookup_tables.utils import LookupTablesMagic
  from streamalert_cli.utils import CLICommand, generate_subparser, set_parser_epilog
label_desc: Use image node_id 2 for calling the LookupTablesListAddSubCommand obj's underlying member method code with example usage: obj.handler(cls, options, config) and returns: True, False