por que em vez de trabalhar em cima do ResultSet direto, você não varre ele, guarda a informação toda em alguma classe de modelo ou collection, ai só depois você trabalha com essas informações ?
Pela especificação do JDBC, o driver tem o direito de lhe retornar um ResultSet que não seja atualizável (ResultSet.CONCUR_UPDATABLE), mesmo que você tenha solicitado isso explicitamente, sem dar erro.
Portanto é necessário você verificar (não sei qual é a API correta para verificar as propriedades do ResultSet) se realmente o ResultSet é atualizável ou não.
Acho que no seu caso deve ter alguma opção que lhe permita fazer isso - não sei se o JTDS ou o driver da Microsoft suportam tais cursores atualizáveis, e em que condições.