Bookmarks are saved in a special file named booksmarks.xml, so they are preserved from session to session. Each project has its own bookmarks.xml file located in the project data directory. Each bookmark is saved as a line offset relative to a symbol declaration, such as a function. This helps to maintain the bookmarks if the original file is edited outside of Source Insight.
Bookmarks are maintained as you edit your files. For example, if you set a mark on a particular line, and then insert lines before that one, the mark will still be on the original line of text, even though the actual line number may have changed. If the line that the mark is set at is deleted, then the mark is deleted also.