Session.contains сообщает, связан ли объект с сеансом. Если у него нет идентификатора, он временный, если у него есть идентификатор и связанный с сеансом, постоянный. Идентификатор, но не связанный с сеансом, отсоединен.
Если это не поможет, подумайте над тем, чтобы перефразировать ваш вопрос в более широком контексте, то есть зачем вам вообще нужно знать состояние объекта?