I have managed to load QgsVectorLayer from PostgreSQL and add it on the map. Is possible to trap save event after editing, do my own saving, call layer refresh and in this way prevent from default save by data source? The idea is to have reading through the standard provider and save changes through the application server applying certain logic and checks.
Yes you can. Since QGIS 2.0 this has been possible mostly. Now you can attach callbacks to signals. See here: http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html#editing-buffer