Если вы делаете это, находясь «в сети», с подключенным хранилищем и открытой папкой, изменения, которые вы делаете через API JavaMail, немедленно отражаются на сервере. Вы и ваша программная логика должны гарантировать, что (например) ваше действие пользовательского интерфейса, помечающее прочитанное или непрочитанное сообщение, приведет к соответствующей операции JavaMail.
Обратите внимание, что, в частности, для "чтения" при извлечении содержимого сообщения сервер помечает сообщение как прочитанное без каких-либо других явных действий, необходимых с вашей стороны.
Если вы хотите, чтобы все это происходило, когда приложение находилось в автономном режиме, и выполняло повторную синхронизацию при следующем подключении к сети, это намного сложнее. В FAQ по JavaMail есть несколько советов, которые помогут с этим.