@Override
	public Bookmark setBookmark(Address addr, String type, String category, String comment) {
		lock.acquire();
		try {
			BookmarkTypeDB bmt = getBookmarkType(type, true);
			int typeId = bmt.getTypeId();
			BookmarkDB bm = (BookmarkDB) getBookmark(addr, type, category);
			if (bm != null) {
				bm.setComment(comment);
			}
			else {
				DBRecord rec = bookmarkAdapter.createBookmark(typeId, category,
					addrMap.getKey(addr, true), comment);
				bm = new BookmarkDB(this, cache, rec);

				// fire event
				program.setObjChanged(ProgramEvent.BOOKMARK_ADDED, addr, bm, null, null);
			}
			return bm;
		}
		catch (IOException e) {
			dbError(e);

		}
		finally {
			lock.release();
		}
		return null;
	}
Update stored bookmark and fire program change event for a bookmark which has
had its category or comment changed.  All other fields are immutable.
@param bm bookmark
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/bookmark/BookmarkDBManager.java