private void deleteAddressRange(Address start, Address end, boolean keepComments,
			TaskMonitor monitor) throws CancelledException {
		lock.acquire();
		boolean success = false;
		try {
			compositeMgr.removeRange(start, end);
			monitor.checkCancelled();
			instAdapter.deleteRecords(start, end);
			monitor.checkCancelled();
			dataAdapter.deleteRecords(start, end);
			monitor.checkCancelled();
			lengthMgr.removeRange(start, end);
			monitor.checkCancelled();
			if (!keepComments) {
				commentAdapter.deleteRecords(start, end);
				monitor.checkCancelled();
				historyAdapter.deleteRecords(start, end);
				monitor.checkCancelled();
			}

			cache.delete(addrMap.getKeyRanges(start, end, false));
			success = true;
		}
		catch (IOException e) {
			program.dbError(e);
		}
		finally {
			if (!success) {
				cache.invalidate();
			}
			lock.release();
		}
	}
Removes the block of defined code units from the listing. All necessary checks will be made 
by listing before this method is called, so just do the work.
@param start the first address in the range.
@param end the last address in the range.
@param keepComments if true comment and comment history will be retained
@param monitor the TaskMonitor that tracks progress and is used to tell if the user cancels 
the operation.
@throws CancelledException if the user cancels the operation.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/code/CodeManager.java