code: @Override
      public void addOrUpdateItem(T item) {
          synchronized (LOCK) {
              // Update memory cache
              cache.onObjectUpdated(item.getEngineId(), item);
  
              List<T> items = new ArrayList<T>();
              items.add(item);
              asyncStorageInt.addOrUpdateItems(items);
  
              for (ListEngineDisplayListener<T> l : listeners) {
                  l.addOrUpdate(item);
              }
          }
      }
docs: Main List Engine