I tried your program, you don't call query.ApplyUpdates.
1) Post only sends the data to a buffer in the TSQLQuery.
2) ApplyUpdates sends the data to the database but doesn't write it to disk.
3) Commit tells the DB to write received data to disk.
This is by design, to be able to regret and for use with transactions, I think.
You can either toggle AutoApplyUpdates in the options of the query. When you Post now, the DBEdits will go blank and the data is saved. Thats because of AutoCommit in options, Commit closes the Transaction and then the dataset closes. You could toggle KeepOpenOnCommit to avoid closing. Also remove your call to CommitRetaining because the data is already commited by AutoCommit.
Or you can disable AutoApply and AutoCommit and instead call:
procedure TForm1.sqlArtAfterPost(DataSet: TDataSet);
begin
sqlArt.ApplyUpdates;
SQLTransaction1.Commit;
end;