void convertDynamicSymbol(SymbolDB symbol, String newName, long newParentID,
			SourceType source) {
		if (source == SourceType.DEFAULT) {
			String msg = "Can't rename dynamic symbol '" + symbol.getName() +
				"' and set its new source to DEFAULT.";
			throw new IllegalArgumentException(msg);
		}
		lock.acquire();
		try {
			long oldKey = symbol.getKey();
			Address address = symbol.getAddress();
			symbolRemoved(symbol, address, symbol.getName(), oldKey, Namespace.GLOBAL_NAMESPACE_ID,
				null);

			DBRecord record = adapter.createSymbolRecord(newName, newParentID, address,
				SymbolType.LABEL, true, source);
			adapter.updateSymbolRecord(record);

			symbol.setRecord(record);
			symbolAdded(symbol);
		}
		catch (IOException e) {
			dbError(e);
		}
		finally {
			lock.release();
		}
	}
Save off old local symbols whose upgrade needs to be deferred until after function manager
upgrade has been completed.

@param tmpHandle scratch pad database handle
@param symbolID local symbol ID
@param oldAddr old address value from symbol table
@param name symbol name
@param isPrimary true if symbol is primary at oldAddr
@throws IOException if there is database exception
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/symbol/SymbolManager.java