@Override
    public V put(K key, V value, boolean persist) {
        V originalValue = super.put(key, value);
        // we only support persistence for <String, String>
        if (persist && key instanceof String && value instanceof String) {
            if (logger.isDebugEnabled())
                logger.debug("Persisting group property [" + key + "]: " + value);
            if (originalValue instanceof String) { // existing property		
                updateProperty((String)key, (String)value, (String)originalValue);
            } else {
                insertProperty((String)key, (String)value);
            }
        }
        return originalValue;
    }
Custom method to put properties into the map, optionally without
triggering persistence. This is used when the map is being 
initially loaded from the database.

@param key The property name
@param value The property value
@param persist True if the changes should be persisted to the database
@return The original value or null if the property did not exist
xmppserver/src/main/java/org/jivesoftware/openfire/group/DefaultGroupPropertyMap.java