If all you are worried about is saving, you might check things like session.Merge.
If this is about retrieving, have you considered depending on second level caching for this? You can make all sessions look at the same 2nd level cache and save some DB hits when the lookup is done. but in the cache not in DB.
In fact, sounds like there is something wrong in the design, from the idea that something creates multiple sessions for something else that it doesn't know which is the current session. At first glance I tend to think maybe you need to work on improving this design itself, but then I remember that you know best about your context and with just that amount of info, nobody can really ague that part correctly.
So, just a hint to *if you think is possible / applicable, and have not done already* look at a way to passing active session as dependency to the things that use it / depend on it.
Regards,