@Override public boolean update(DatabaseDocument<T> d) { if (!cache.update(d)) { DatabaseDocument<T> doc = reader.getDocumentById(d.getID()); if (doc != null) { cache.add(doc); cache.update(d); } if (cache.getDocumentById(d.getID()) == null) { d.removeFetchedBy(CACHE_TAG); } return writer.update(d); } return true; }