private void fdbDatabaseInsert(InsertRequest query)
			throws LSHException, ElasticException, DatabaseNonFatalException {
		if (info.readonly) {
			throw new LSHException("Trying to insert on read-only database");
		}
		if (FunctionDatabase.checkSettingsForInsert(query.manage, info)) { // Check if settings are valid and is this is first insert
			info.major = query.manage.getMajorVersion();
			info.minor = query.manage.getMinorVersion();
			info.settings = query.manage.getSettings();
			writeBasicInfo(0, 0); // Save off the settings associated with this first insert
		}
		ResponseInsert response = query.insertresponse;
		if ((query.repo_override != null) && (query.repo_override.length() != 0)) {
			query.manage.overrideRepository(query.repo_override, query.path_override);
		}
		// Insert each executable in turn
		boolean newExecutable = false;
		for (ExecutableRecord erec : query.manage.getExecutableRecordSet()) {
			if (erec.isLibrary()) {
				insertLibrary(query.manage, erec);
			}
			else if (insertExe(query.manage, erec)) {
				newExecutable = true;
			}
		}
		if (!newExecutable) {
			throw new DatabaseNonFatalException("Already inserted");
		}
		response.numexe = query.manage.getExecutableRecordSet().size();
		response.numfunc = query.manage.numFunctions();
	}
Entry point for the Elasticsearch version of InsertRequest command:
  Insert new functions and executables into the database.
@param query is command parameters
@throws LSHException if the command is misconfigured
@throws ElasticException for communication problems with the server
@throws DatabaseNonFatalException if everything is already inserted
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/elastic/ElasticDatabase.java