¿Cómo configurar jquery-ui draggable revert a true si después de una validación decido mover el elemento de nuevo?

Estoy buscando una manera de desencadenar el evento desde el estado de reversión si algo no se valida, por ejemplo, si el elemento no existe, lo creará a partir de otra lista, pero si ya existe, debería ir a else y devolver el elemento a su posición original:

$( "#catalog ul" ).droppable({
        tolerance: 'fit',
        activeClass: "ui-state-default",
        hoverClass: "ui-state-hover",
        accept: ":not(.ui-sortable-helper)",
        drop: function( event, ui ) {
            //check if already exists
            if($(this).find("#"+$(ui.draggable).attr("id")).length==0){
                $( "<li id="+$(ui.draggable).attr("id")+"></li>" ).text( ui.draggable.text() ).appendTo( this )
                .draggable({
                    revert: 'invalid',
                    stop: function(){
                        $(this).draggable('option','revert','invalid');
                    }
                }).droppable({
                    greedy: true,
                    tolerance: 'touch',
                    drop: function(event,ui){
                        ui.draggable.draggable('option','revert',true);
                    }
                });
            }else{
                //want to make the object go back by setting true to revert
                return false;
            }
        }
    })

Respuestas a la pregunta(4)

Su respuesta a la pregunta