@Override
	public void add(Address addr, int value) {
		lock.acquire();
		try {
			checkDeleted();
			Integer oldValue = null;
			long addrKey = addrMap.getKey(addr, true);
			if (propertyTable == null) {
				createTable(IntField.INSTANCE);
			}
			else {
				oldValue = cache.get(addrKey);
				if (oldValue == null) {
					oldValue = valueReader.apply(addrKey);
				}
			}
			DBRecord rec = schema.createRecord(addrKey);
			rec.setIntValue(PROPERTY_VALUE_COL, value);
			propertyTable.putRecord(rec);
			cache.put(addrKey, value);

			changeMgr.setPropertyChanged(name, addr, oldValue, value);
		}
		catch (IOException e) {
			errHandler.dbError(e);
		}
		finally {
			lock.release();
		}
	}
Construct a integer property map.
@param dbHandle database handle.
@param openMode the mode that the program was openned in or null if instantiated during
cache invalidate.  Used to detect versioning error only.
@param errHandler database error handler.
@param changeMgr change manager for event notification	 
@param addrMap address map.
@param name property name.
@param monitor progress monitor that is only used when upgrading
@throws VersionException if the database version is not the expected version.
@throws CancelledException if the user cancels the upgrade operation.
@throws IOException if a database io error occurs.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/properties/IntPropertyMapDB.java