Check out this Java library WaterMarkIt for adding customizable watermarks. The library uses PDFBox.
WatermarkService.create()
.watermarkPDF(new File("path/to/file.pdf"))
.withImage(new File("path/to/watermark.png"))
.position(WatermarkPosition.TOP_LEFT)
.apply();