code: def store(self, key, value):
      if self.dummy:
          return
  
      if self.initialised == -1:
          self.initialise()
  
      if self.initialised == 0:  # failure
          return
  
      db = self.get_db()
      if db is None:
          return
      try:
          if value is None:
              q = _KV.delete().where(_KV.key == key)
              q.execute()
              return
          with db.atomic():
              _KV.insert(key=key, value=value).execute()
      except _peewee.IntegrityError:
          # Integrity error means the key already exists. Try updating the key.
          old_value = self.lookup(key)
          if old_value != value:
              get_yf_logger().debug(
                  f"Value for key {key} changed from {old_value} to {value}."
              )
              with db.atomic():
                  q = _KV.update(value=value).where(_KV.key == key)
                  q.execute()
  
imports: import peewee
  from threading import Lock
  import os
  import appdirs
  import atexit
  import datetime
  import pickle
  from .utils import get_yf_logger
label_desc: Use image node_id 5 for calling the _TzCache obj's underlying member method code with example usage: obj.store(key, value) without return types