@Override
	public void save(String comment, TaskMonitor monitor) throws IOException, CancelledException {

		synchronized (this) {
			if (dbh.canUpdate()) {
				if (changed) {
					dbh.save(comment, null, monitor);
					setChanged(false);
				}
			}
			else {
				FileSystem userfs = program.getAssociatedUserFilesystem();
				if (userfs != null) {
					programContentHandler.saveUserDataFile(program, dbh, userfs, monitor);
					setChanged(false);
				}
			}
		}

		// fireEvent(new DomainObjectChangeRecord(DomainObject.DO_OBJECT_SAVED));
	}
Translate language
@param translator language translator, if null only re-disassembly will occur.
@param monitor task monitor
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramUserDataDB.java