Efectivamente amigo, es lo que trato decirle, el cliente debe realizar el commit al servidor a traves del socket como dices, solo asi los datos se quedarán grabados en la base.
Ejemplo:
Código Delphi
[-]try
....
FIBClientDataSet.ApplyUpdates(-1);
FIBDatabase.Commit;
except
FIBDatabase.rollback;
end;
sólo así te va a grabar los datos, tal vez me pueda equivocar

, pero estoy seguro que ese es el problema.
Saludos.