Você não pode obter rsync para informar isso por meio do código de saída. Os códigos de saída documentaram significados pré-definidos.
Acho que a melhor maneira de fazer isso a partir do java seria adicionar a opção --info=NAME para mencionar somente nomes de diretórios e arquivos atualizados:
rsync -a --info=NAME --update user@remotehost/files/ ~/files/
Imprime os nomes dos arquivos e diretórios atualizados, um por linha, na saída padrão (fd = 0).
Em seguida, você coletaria a saída de rsync e contaria o número de novas linhas na string.
Eu acho que uma boa maneira de coletar a saída em java pode ser encontrada nesta resposta, mas eu não tentei: link
Fazer não usar redirectErrorStream ou, de qualquer outra forma, mesclar a saída padrão de um fluxo de erro padrão. Se fizer isso, você contará as mensagens de erro como arquivos atualizados, não o que você deseja.