void addMemoryBlock(String name, AddressRange range) throws IOException {
		lock.acquire();

		try {
			FragmentDB frag = (FragmentDB) getFragment(name);
			if (frag == null) {
				frag = createFragmentAdjustNameAsNeeded(name);
			}
			frag.addRange(range);
			fragMap.paintRange(range.getMinAddress(), range.getMaxAddress(),
				new LongField(frag.getKey()));
			treeMgr.updateTreeRecord(record);
			versionTag = new Object(); //update the version tag
		}
		finally {
			lock.release();
		}
	}
Construct a program tree module manager
@param treeMgr program tree manager
@param rec program tree record
@param openMode the mode this adapter is to be opened for (CREATE, UPDATE, READ_ONLY, UPGRADE).
@param monitor task monitor
@throws IOException if a database IO error occurs
@throws CancelledException if monitor cancelled (upgrade case only)
@throws VersionException if opening an existing program tree and an underlying table 
schema version differs from the expected version.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/ModuleManager.java