Sip, es raro. Yo hice esta otra, y estoy más que confundido, porque el getAttribute parece tomarlo (a medias, poque sólo toma el número 2), pero setAttribute no lo escribe.
Código PHP:
<script>
function do_update(objeto){
valorActual=document.getElementById(objeto).getAttribute("value").toString()+'2';
alert(valorActual.toString());
document.getElementById(objeto).setAttribute("value",valorActual);
}
</script>