upsert method Null safety
- T model,
 - {Query? query}
 
Update or insert a model
Implementation
Future<T?> upsert(T model, {Query? query}) async {
  state(SyncModelState.writing);
  await syncController.ready;
  try {
    final T result = await repository.upsert<T>(model, query: query);
    state(SyncModelState.idle);
    return result;
  } on OfflineFirstException catch (err) {
    _lastError = err;
    state(SyncModelState.error);
    return (err.originalError as RestException).response.throwError();
  } on Exception catch (err) {
    _lastError = err;
    state(SyncModelState.error);
  }
}