The answer was in the provided link
I changed:
private CellEntry createUpdateOperation(URL cellFeedUrl, int row, int col, String value) throws ServiceException, IOException {
String batchId = "R" + row + "C" + col;
URL entryUrl = new URL(cellFeedUrl.toString() + "/" + batchId);
CellEntry entry = this.service.getEntry(entryUrl, CellEntry.class);
entry.changeInputValueLocal(value);
BatchUtils.setBatchId(entry, batchId);
BatchUtils.setBatchOperationType(entry, BatchOperationType.UPDATE);
return entry;
}
into:
private CellEntry createUpdateOperation(URL cellFeedUrl, int row, int col, String value) throws ServiceException, IOException {
String batchId = "R" + row + "C" + col;
CellEntry batchEntry = new CellEntry(row, col, value);
batchEntry.setId(String.format("%s/%s", cellFeedUrl.toString(), batchId));
BatchUtils.setBatchId(batchEntry, batchId);
BatchUtils.setBatchOperationType(batchEntry, BatchOperationType.UPDATE);
return batchEntry;
}
300 cells edited in +/-20 seconds now so it's better...