public boolean postTask(final T transaction, final XmlTask task) throws SQLException {
   // This must be handled as the response can get lost without the transaction failing.
   Handle<XmlTask> existingHandle =
       getTasks().containsRemoteHandle(transaction, task.getRemoteHandle());
   if (existingHandle != null) {
     task.setHandleValue(existingHandle.getHandleValue());
     return false; // no proper update
   }
   boolean result = getTasks().put(transaction, task) != null;
   task.setState(NodeInstanceState.Acknowledged, task.getOwner()); // Only now mark as acknowledged
   return result;
 }