Ваше использование Optional<T>
API выглядит хорошо издалека, так как я не вижу никакого злоупотребления им. если бы я придирался к мелочам и предлагал что-то, я бы изменил:
if (coupons.isPresent) {
save (coupons.get());
}
на:
coupons.ifPresent(c -> save(c)); //or method reference
, но опять же, это действительно не по вкусу.