Te has preguntado lo que sucede si veces es mayor a palabra.length() , pues esto
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.charAt(String.java:694)
at PruebaString.traslacion(PruebaString.java:12)
at PruebaString.main(PruebaString.java:24)
en lugar de usar String, usa StringBuffer, por temas de eficiencia más que nada
public String traslacion(String palabra, int veces){
StringBuffer nuevo = new StringBuffer();
int tam = palabra.length() - 1;
if(veces > palabra.length()){
veces = tam;
}
while(veces > 0){
nuevo.append(palabra.charAt(tam--));
veces--;
}
nuevo.append(palabra.substring(0,(tam-veces)+1));
return nuevo.toString();
}