I see there is a lot of logging occurring in the class when an error occurs. Shouldn't we rather be throwing exceptions to ensure the calling code know this has failed? In this case when these errors occur it will just return the obs and the calling code won't know that it actually wasn't saved.