Generally speaking, you are supposed to bottleneck where your actual CRUD operations are contained and use one interface to deal with it. Since this is the sort of thing that tends to change often as you need to develop more CRUD operations, you risk that you'd have to change each and every call to a method that you've changed or at the least, rethink how it gets called in the context of how you've changed it.
If you're talking about a small project, this is not such a big deal, however in larger projects, this gets very tedious very quickly and thus good structure becomes paramount. What I recommend you do is make an object representative of the operations you're performing on the database. In other words, if I have CRUD operations for writing "Student" table, then you create class Student which handles the actual CRUD calls. At that point, to update information pertaining to Student, you'd only have to, say, implement a method "Save" which updates the database using the information it currently contains.
At this point, you no longer have to worry about providing a Database connection, session, whether or not it should insert or update. Callers merely have to call "Save" and your class worries about that sort of logic. You'll find that not only does this simplify your code, but it allows you to wall off logic pertaining to the database from the rest of your program, thus keeping it cleaner in general.