Uso de Graphics2D para superponer texto en una imagen almacenada y devolver una imagen almacenada

He verificado preguntas con nombres similares, pero no responden a este caso de uso.

Básicamente, debía superponer texto (texto) en una coordenada dada (x, y) Tengo la siguiente función en un paquete;

protected BufferedImage Process2(BufferedImage image){
    Graphics2D gO = image.createGraphics();
    gO.setColor(Color.red);
    gO.setFont(new Font( "SansSerif", Font.BOLD, 12 ));
    gO.drawString(this.text, this.x, this.y);
    System.err.println(this.text+this.x+this.y);
    return image;
}

Siento que me estoy perdiendo algo evidentemente obvio; Cada referencia a Graphics2D que puedo encontrar está relacionada con juegos o escribiendo directamente en un archivo, pero solo quiero que me devuelvan una BufferedImage. con la superposición 'renderizada'

En el código actual, la imagen aparece sin cambios al final.

¡Gracias!